数据结构 作业9、散列查找
开始时间09/09/2024 12:00:00 AM
结束时间12/25/2024 11:59:00 PM
答题时长155519分钟
答卷类型标准答案
试卷总分100
单选题90 分
2-1

已知一个长度为16的顺序表L,其元素按关键字有序排列。若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:

| 参考答案
答案
B
3分
2-2

用二分查找从100个有序整数中查找某数,最坏情况下需要比较的次数是:

| 参考答案
答案
A
3分
2-3

在散列表中,所谓同义词就是:

| 参考答案
答案
B
3分
2-4

在下列查找的方法中,平均查找长度与结点个数无关的查找方法是:

| 参考答案
答案
C
3分
2-5

对包含NN个元素的散列表进行查找,平均查找长度为:

| 参考答案
答案
D
3分
2-6

MM个元素存入用长度为SS的数组表示的散列表,则该表的装填因子为:

| 参考答案
答案
D
3分
2-7

散列冲突可以被描述为:

| 参考答案
答案
C
3分
2-8

将10个元素散列到100000个单元的哈希表中,是否一定产生冲突?

| 参考答案
答案
B
3分
2-9

设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17H(Key)=Key\%17。采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。元素59存放在散列表中的地址是:

| 参考答案
答案
D
3分
2-10

假定有KK个关键字互为同义词,若用线性探测法把这KK个关键字存入散列表中,至少要进行多少次探测?

| 参考答案
答案
D
3分
2-11

采用线性探测法解决冲突时所产生的一系列后继散列地址:

| 参考答案
答案
C
3分
2-12

将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。散列函数为:H(Key)=Key%11H(Key) = Key\%11,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?

| 参考答案
答案
B
3分
2-13

给定散列表大小为11,散列函数为H(Key)=Key%11H(Key) = Key\%11。采用平方探测法处理冲突:hi(k)=(H(k)±i2)%11h_i(k) = (H(k) \pm i^2)\%11将关键字序列{ 6,25,39,61 }依次插入到散列表中。那么元素61存放在散列表中的位置是:

| 参考答案
答案
A
3分
2-14

给定散列表大小为11,散列函数为H(Key)=Key%11H(Key) = Key\%11。按照线性探测冲突解决策略连续插入散列值相同的4个元素。问:此时该散列表的平均不成功查找次数是多少?

| 参考答案
答案
C
3分
2-15

从一个具有NN个结点的单链表中查找其值等于XX的结点时,在查找成功的情况下,需平均比较多少个结点?

| 参考答案
答案
D
3分
2-16

若用平方探测法解决冲突,则插入新元素时,以下陈述正确的是:

| 参考答案
答案
B
3分
2-17

设数字 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 在大小为10的散列表中根据散列函数 h(X)=X%10h(X) = X \%10得到的下标对应为 {1, 3, 4, 9, 5, 0, 2}。那么继续用散列函数 “h(X)=X%h(X) = X \%表长”实施再散列并用线性探测法解决冲突后,它们的下标变为:

| 参考答案
答案
C
3分
2-18

将元素序列{18, 23, 4, 26, 31, 33, 17, 39}按顺序插入一个初始为空的、大小为13的散列表中。散列函数为:H(Key)=Key%13H(Key) = Key\%13,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?

| 参考答案
答案
C
3分
2-19

给定散列表大小为11,散列函数为H(Key)=Key%11H(Key) = Key\%11。按照线性探测冲突解决策略连续插入散列值相同的5个元素。问:此时该散列表的平均不成功查找次数是多少?

| 参考答案
答案
A
3分
2-20

在有nnn>1000n>1000)个元素的升序数组A中查找关键字xx。查找算法的伪代码如下所示:

k = 0;
while ( k<n 且 A[k]<x )  k = k+3;
if ( k<n 且 A[k]==x )  查找成功;
else if ( k-1<n 且 A[k-1]==x ) 查找成功;
     else if ( k-2<n 且 A[k-2]==x ) 查找成功;
          else 查找失败;

本算法与二分查找(折半查找)算法相比,有可能具有更少比较次数的情形是:

| 参考答案
答案
B
3分
2-21

度量结果集相关性时,如果准确率很高而召回率很低,则说明:

| 参考答案
答案
B
3分
2-22

在评价一个搜索引擎时,下列哪项不是我们关注的要点?

| 参考答案
答案
C
3分
2-23

下列几组概念中,那一组不完全跟搜索引擎有关?

| 参考答案
答案
D
3分
2-24

下列几组概念中,那一组不完全跟搜索引擎有关?

| 参考答案
答案
A
3分
2-25

下列几组概念中,那一组不完全跟搜索引擎有关?

| 参考答案
答案
C
3分
2-26

下列二叉树中,可能成为折半查找判定树(不含外部结点)的是:

| 参考答案
答案
A
3分
2-27

现有长度为 7、初始为空的散列表HT,散列函数H(k)=k%7H(k)=k\% 7,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT后,查找成功的平均查找长度是:

| 参考答案
答案
C
3分
2-28

有两个垃圾邮件检测系统,分别用带有 10000 封正常邮件和 2000 封垃圾邮件的数据集进行测试。系统 A 检测出了 300 封正常邮件和 1600 封垃圾邮件,系统 B 检测出了 315 封正常邮件和 1800 封垃圾邮件。如果我们重点关注的是保证重要邮件的安全,下列哪句陈述是正确的?

| 参考答案
答案
C
5分
2-29

设有一组关键字 { 29,01, 13,15,56,20,87,27,69,9,10,74 },散列函数为 H(key)=key%17H(key)=key\% 17,采用线性探测方法解决冲突。试在 0 到 18 的散列地址空间中对该关键字序列构造散列表,则成功查找的平均查找长度为 __

| 参考答案
答案
D
4分
程序填空题10 分
5-1

下列代码的功能是利用散列函数hash将一个元素插入到散列表ht[]中。其中list类型的结点包含element类型的项item、以及一个next指针。如果插入成功,则函数返回1,否则返回0。

int insert( struct element item, list_pointer ht[] )
{
   int ret, hash_value;
   list_pointer ptr, trail, lead;

   ret = 1;
   hash_value = hash(item.key);
   trail = NULL; lead = ht[hash_value];
   for ( ; lead; trail = lead, lead = lead->next) {
      if (!strcmp(lead->item.key, item.key)) {
         printf("The key is in the table\n");
         ret = 0;
      }
   }
   if (ret) {
      ptr = (list_pointer)malloc(sizeof(struct list));
      
3分
; ptr->next = NULL; if (trail)
3分
; else
4分
; } return ret; }
| 参考答案
填空#1
ptr->item = item
填空#2
trail->next = ptr
填空#3
ht[hash_value] = ptr
| 评测详情
填空详情
10分